package com.flot.yazb.widget.utils;

import android.graphics.Bitmap;
import android.util.LruCache;

/**
 * 从内存中读取图片
 * @author TyroneSean
 *
 */
public class MemoryCacheUtils {
    private LruCache<String  , Bitmap> mMemoryCache;
    public MemoryCacheUtils() {
//获得手机分配给应用的内存的8分之一来缓存图片
        long maxMemory = Runtime.getRuntime().maxMemory()/8;
        mMemoryCache = new LruCache<String, Bitmap>((int) maxMemory){
            /**
             * 获得每张图片大小，从而计算内存中图片是否超过maxMemory，如果超过，则虚拟机回收。。。
             */
            @Override
            protected int sizeOf(String key, Bitmap value) {
                return value.getRowBytes() * value.getHeight();
            }
        };
    }
    public  void putBitmap2Rom(String url, Bitmap bm) {
        mMemoryCache.put(url, bm);
    }
    public  Bitmap getBitmapFromRom(String url) {
        return mMemoryCache.get(url);
    }
}
